package com.yoki.cloud.common.utils.aop.security;



import com.yoki.cloud.common.utils.aop.security.annotation.EnablePrivacyDisplay;
import com.yoki.cloud.common.utils.aop.security.annotation.PrivacyDisplay;
import com.yoki.cloud.common.utils.aop.security.enums.PrivacyDisplayType;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.Objects;

public class PrivacyDisplayAnnoUtils {

    /**
     * 判断传入数据是否有{@link EnablePrivacyDisplay}注解<br/>
     * 有则表示需要进行隐私显示
     *
     * @param object 需要判断的数据
     * @return
     */
    public static boolean isNeedPrivacyDisplayClass(Object object) {
        if (Objects.isNull(object)) {
            return false;
        }
        Class<?> objectClass = object.getClass();
        Annotation anno = objectClass.getAnnotation(EnablePrivacyDisplay.class);
        //判断传入的类是否含有EnablePrivacyDisplay注解
        if (null != anno) {
            return true;
        }
        return false;
    }

    /**
     * 判断传入数据是否有{@link PrivacyDisplay}注解<br/>
     * 有则表示需要进行隐私显示
     *
     * @param field 需要判断的数据
     * @return
     */
    public static boolean isNeedPrivacyDisplayField(Field field) {
        if (Objects.isNull(field)) {
            return false;
        }
        Annotation anno = field.getAnnotation(PrivacyDisplay.class);
        //判断传入的字段是否含有PrivacyDisplay注解
        if (null != anno) {
            return true;
        }
        return false;
    }

}
